// 引入express框架
const express = require('express')

// 路径处理模块
const path = require('path')
const bodyParser = require('body-parser')
const fs = require('fs')

// 创建web服务器
const app = express()
// 可以处理客户端发来的json格式的数据
app.use(bodyParser.json())
// 可以处理客户端发来的form格式的数据
app.use(bodyParser.urlencoded({ extended: false }))

//设置跨域访问
app.all("*", function (req, res, next) {
    //设置允许跨域的域名，*代表允许任意域名跨域
    res.header("Access-Control-Allow-Origin", req.headers.origin || '*');
    // //允许的header类型
    res.header("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With");
    // //跨域允许的请求方式
    res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
    // 可以带cookies
    res.header("Access-Control-Allow-Credentials", true);
    if (req.method == 'OPTIONS') {
        res.sendStatus(200);
    } else {
        next();
    }
})

// 静态资源访问服务功能
app.use(express.static(path.join(__dirname, 'public')))

// 对应01html文件
app.get('/first', (req, res) => {
    res.send('Hello, Ajax')
})
app.get('/promise', (req, res) => {
    res.send('name=小明&age=20')
})
app.get('/promise1', (req, res) => {
    res.send('promise1')
})
app.get('/promise2', (req, res) => {
    res.send('promise2')
})
app.get('/promise3', (req, res) => {
    res.send('promise3')
})
// 对应02html文件
app.get('/responseData', (req, res) => {
    res.send({'name': 'zs'})
})

// 对应03html文件
app.get('/get', (req, res) => {
    res.send(req.query)
})

// 对应04html文件
//app.post('/post', (req, res) => {
  //  res.send(req.body)
//})
app.post('/post', (req, res) => {
    res.send({id:1,address:'洛职'})
})
// 对应05html文件
app.post('/json', (req, res) => {
    res.send(req.body)
})

// 对应06html文件
app.get('/readystate', (req, res) => {
    res.send('hello')
})

// 对应07html文件
app.get('/error', (req, res) => {
    //console.log(abc);
    res.status(400).send('not ok')
})

// 对应08html文件
app.get('/cache', (req, res) => {
    fs.readFile('./test.txt', (err, result) => {
        res.send(result)
    })
})



app.get('/axios-json', (req, res) => {
    res.send({
		name: 'xiaoming',
		age:20,
	})
})
app.get('/xiaohei', (req, res) => {
    res.send('100')
})
app.get('/xiaohong:money', (req, res) => {
    res.send(`接收${xiaohong.res.money}`)
})


// 监听端口
app.listen(3000)

// 控制台提示输出
console.log('服务器启动成功')